import axios from 'axios'
import store from '@/store'
import { message } from 'ant-design-vue'
// let envName = process.env.NODE_ENV
// plm中台代理接口
const request = axios.create({
  // baseURL: process.env.VUE_APP_API_URL, // url = base url + request url
  // baseURL: '/api',
  timeout: 1200000, // 请求超时,
  // 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
})

// 异常拦截处理器
const errorHandler = (error) => {
  // message.error(error.message)
  return Promise.reject(error)
}
let reqNum = 0
// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // 在请求发出之前进行一些操作，每次发出请求就 reqNum++
  reqNum++
  // console.log(reqNum)
  let userinfo = JSON.parse(sessionStorage.getItem('userInfo'))
  try{
    if (config.data) {
      // config.data.userId = userinfo.loginName
      config.data.userId = "luhe"
    } else {
      config.data = {
        // userId: userinfo.loginName
        userId: "luhe"
      }
    }
  } catch(e) {}
  config.headers.Authorization = sessionStorage.getItem('authorToken')
  // config.headers['Accept-Language'] = 'en-US,en;q=0.8' // zh-CN,zh;q=0.9
  return config
}, errorHandler);

// 添加响应拦截器
request.interceptors.response.use(function (response) {
  // 接受请求后 reqNum--，判断请求所有请求是否完成
  if (response && response.status === 200) {
    reqNum--
  }
  if (reqNum <= 0) {
    // console.log('加载完成...', reqNum)
    store.commit('setAllLoadingGinished', true)
  } else {
    // console.log('未加载完...', reqNum)
    store.commit('setAllLoadingGinished', false)
  }
  if (response && response.status === 200) {
    if (response.data.code === '531' && store.state.commonData.ipStatus) {
      // message.error(response.data.message)
      store.commit('SETINSTATUS', false)
    }
  }
  // if (response && response.status === 200) {
    return response;
  // }
}, errorHandler);

export {
  request
}